import pandas as pd

medal_counts_df = pd.read_csv('F:/25MCM_C/C_data/summerOly_medal_counts.csv', encoding='latin1')
iso_df = pd.read_excel('F:/25MCM_C/C_data/ISO.xlsx')
#比赛结束前最后一天售后群发布无水印可视化结果+无标注代码【可直接提交】为了防止倒卖， 论文写作过程中遗留数个致命问题，无关代码，该问题解决方式仅在官网授权售后群答疑，盗卖方式购买资料不提供答疑，感谢理解 美赛资料助攻购买链接+说明https://docs.qq.com/doc/p/f3dc6bffbf4dab58dbdfd3e5e5de18a2ad974216
print(medal_counts_df.head())
print(iso_df.head())

medal_counts_df['NOC'] = medal_counts_df['NOC'].str.strip().str.upper()
iso_df['country'] = iso_df['country'].str.strip().str.upper()

merged_df = pd.merge(
    medal_counts_df,
    iso_df[['country', 'NOC']],  # 只保留与映射相关的列
    left_on='NOC',
    right_on='country',
    how='left'  # 使用 left join，保留 medal_counts_df 中的所有行
)

unmatched = medal_counts_df[~medal_counts_df['NOC'].isin(iso_df['country'])]
if not unmatched.empty:
    print("以下 NOC 在 ISO 中没有匹配的国家：")
    print(unmatched)
#比赛结束前最后一天售后群发布无水印可视化结果+无标注代码【可直接提交】为了防止倒卖， 论文写作过程中遗留数个致命问题，无关代码，该问题解决方式仅在官网授权售后群答疑，盗卖方式购买资料不提供答疑，感谢理解 美赛资料助攻购买链接+说明https://docs.qq.com/doc/p/f3dc6bffbf4dab58dbdfd3e5e5de18a2ad974216
merged_df['NOC'] = merged_df['NOC_y']   # 用新的 IOC 码替换
merged_df = merged_df.drop(columns=['NOC_x', 'NOC_y', 'country'], errors='ignore')  # 删除不必要的列

merged_df['NOC'] = merged_df['NOC'].fillna('Unknown')

print(merged_df.head())

merged_df.to_csv('F:/25MCM_C/C_data/summerOly_medal_counts_iso_replaced.csv', index=False)
#比赛结束前最后一天售后群发布无水印可视化结果+无标注代码【可直接提交】为了防止倒卖， 论文写作过程中遗留数个致命问题，无关代码，该问题解决方式仅在官网授权售后群答疑，盗卖方式购买资料不提供答疑，感谢理解 美赛资料助攻购买链接+说明https://docs.qq.com/doc/p/f3dc6bffbf4dab58dbdfd3e5e5de18a2ad974216